﻿using System;
using System.Collections.Generic;
using System.IO.Ports;
using XCSerialPort;

namespace XCSerialPortExample
{
    class Program
    {
        static void Main(string[] args)
        {
            // 设置串口配置
            ConfigType config = new ConfigType
            {
                PortName = "COM3",       // 替换为您实际的串口名称
                BaudRate = 9600,         // 设置波特率
                DataBits = 8,            // 数据位数
                StopBits = StopBits.One, // 停止位
                Parity = Parity.None      // 奇偶校验
            };

            // 创建串口管理器实例
            SerialPort_ARM_ISPManager serialPortManager = new SerialPort_ARM_ISPManager(config);

            // 打开串口
            string msg;
            if (serialPortManager.Open(out msg))
            {
                Console.WriteLine(msg); // 打开成功消息

                // 进行寄存器写入
                List<ulong> valuesToWrite = new List<ulong> { 0x12345678, 0x9ABCDEF0 };
                serialPortManager.WriteRegister(0x00000000, valuesToWrite, out msg); // 替换为实际的寄存器地址
                Console.WriteLine(msg); // 写入状态消息

                // 进行寄存器读取
                List<ulong> readValues = serialPortManager.ReadRegister(0x00000000, out msg, length: 2); // 替换为实际的寄存器地址
                Console.WriteLine(msg); // 读取状态消息

                // 输出读取到的值
                Console.WriteLine("读取到的值:");
                foreach (var value in readValues)
                {
                    Console.WriteLine($"0x{value:X8}");
                }

                // 关闭串口
                serialPortManager.Close(out msg);
                Console.WriteLine(msg); // 关闭状态消息
            }
            else
            {
                Console.WriteLine(msg); // 打开失败消息
            }
        }
    }
}
